Object name/fr

Introduction

Tous les objets du programme ont un object name qui les identifie de manière unique dans un document donné.

Ces informations s'appliquent à tous les objets dérivés de App DocumentObject (classe App::DocumentObject), qui comprend essentiellement tous les objets qu'il est possible de créer dans un document.

Les Names

Il existe différentes propriétés pour les noms:

En résumé, Name agit essentiellement comme un identifiant unique (UID) pour un objet. Puisqu'un Name unique est très restrictif, tous les objets ont également une propriété Label qui permet de "renommer" l'objet en quelque chose de plus descriptif. Le Name interne reste en fait fixe, mais le Label modifiable par l'utilisateur peut être utilisé dans la plupart des situations où le Name serait utilisé. Dans l'utilisation courante dans le programme et la documentation, "renommer" signifie changer le Label et non le Name réel de l'objet.

Les Labels

Il existe différentes propriétés pour les étiquettes:

<<Custom Label With Spaces>>.Height
<<Label may use UTF8 characters>>.Width

Label2

Il s'agit d'une chaîne simple qui peut contenir du texte arbitraire et peut donc être utilisée pour documenter (décrire plus en détail) l'objet créé.

Script

Voir aussi : Débuter avec les scripts et Objets créés par script.

Tout objet du logiciel est créé en interne avec la méthode addObject() du document. La majorité des objets 2D et 3D que l'utilisateur verra dans la vue 3D sont dérivés d'un Part Feature. Dans l'exemple suivant, l'objet créé est une Part Box.

import FreeCAD as App

doc = App.newDocument()
obj = doc.addObject("Part::Box", "Name")
obj.Label = "Custom label"

Name (Nom)

La fonction addObject a deux arguments de chaîne de base.

Label (Etiquette)

Label est une propriété de l'objet créé et peut être changé en un texte plus significatif.

Accéder à un objet par Name ou Label

Tous les objets d'un document sont des attributs de données de l'objet Document correspondant. Le nom de l'attribut correspond à Name interne de l'objet.

import FreeCAD as App

obj1 = App.ActiveDocument.Box
obj2 = App.ActiveDocument.Box001
obj3 = App.ActiveDocument.Box002

Cela équivaut à utiliser la méthode getObject de document.

import FreeCAD as App

obj1 = App.ActiveDocument.getObject('Box')
obj2 = App.ActiveDocument.getObject('Box001')
obj3 = App.ActiveDocument.getObject('Box002')

Cependant, il est également possible d'obtenir l'objet par Label davantage descriptif.

import FreeCAD as App

obj1 = App.ActiveDocument.getObjectsByLabel("Concrete wall")[0]
obj2 = App.ActiveDocument.getObjectsByLabel("Custom parallelepiped")[0]
obj3 = App.ActiveDocument.getObjectsByLabel("Some special name for this cube__002")[0]

Étant donné que Label n'est en général pas unique, la méthode getObjectsByLabel renvoie une liste avec tous les objets trouvés avec cette Label. Cependant, si Label est unique dans le document, le premier élément de cette liste doit être l'objet souhaité.